package cn.tedu.csmall.passport.service;

import cn.tedu.csmall.commons.pojo.vo.PageData;
import cn.tedu.csmall.passport.pojo.param.AdminAddNewParam;
import cn.tedu.csmall.passport.pojo.param.AdminLoginInfoParam;
import cn.tedu.csmall.passport.pojo.param.AdminUpdateInfoParam;
import cn.tedu.csmall.passport.pojo.vo.AdminListItemVo;
import cn.tedu.csmall.passport.pojo.vo.AdminStandardVo;

import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface AdminService {

    /**
     * 管理员登录
     *
     * @param adminLoginInfoParam 封装了用户名、密码等相关信息的对象
     * @param remoteAddr          来访IP地址
     * @param userAgent           浏览器信息
     * @return 此管理员登录后得到的JWT数据
     */
    String login(AdminLoginInfoParam adminLoginInfoParam,String remoteAddr,String userAgent);


    void addNew(AdminAddNewParam adminAddNewParam);

    PageData<AdminListItemVo> list(Integer pageNum);
    PageData<AdminListItemVo> list(Integer pageNum, Integer pageSize);

    void delete(Long id);

    void updatePasswordById(Long id,String password);

    void updateInfoById(Long id,AdminUpdateInfoParam adminUpdateInfoParam);

    AdminStandardVo getStandardById(Long id);
}
